As we have to think from the sides of both customer and us , I think it will not be good idea to ask for the payment immediately before you start working. But you can break the tasks into smaller milestones and ask for the payment as soon as each milestone is delivered.
For example: (break the milestones as per your convenience and nature of the project)
- Requirement analysis delivered : 20% of payment
- Data model delivered : 20% of payment
- First user story delivered : 20% of payment
- etc and so on ( I made up the tasks but feel free to negotiate the milestones).
Make sure the first deliverable is small so you will know the customer soon rather than waiting till the end.
This will put both customer and you in a comfortable position. And both parties will know if one of the party is not honoring the contract very soon.
My 2 cents.