Require a retainer before starting work. Apply the retainer to final invoice...i.e. this means that near the end of the project you owe work that you have already been paid for rather than the client owing you money for work you have already done. Invoice regularly with payment due on receit. Immediately stop work when payment is late and make a phone call. Put all of this in the terms of your contract. Don't start work until the retainer has cleared your bank.
A potential client who is not willing to write a check in order to get their project started either doesn't have the money, doesn't intend to pay, or doesn't trust you. The first and second only have bad outcomes. The third, is often not worth the trouble because people with trust issues can rationalize behaviors that are not in your interest (like the first and second behaviors).
Or to put it another way, the best company to handle payments is your company and the best way to handle it is client selection and client development. Good clients are the only solution to bad clients.
Good luck.