When working as a freelancer it is a good idea to ask for a pre-payment. This way you know that your employer is interested in the project and is less likely to stop participating in it out of the blue. Of course, he still can stop responding to your e-mails and calls, but at least you'll have some compensation. To be honest, I am not a big fan of pre-payments, because I tend to trust my customers and partners, but unfortunately that's not always practical. Let me tell you a small story that happened to me and my mate.
One day my friend contacted me and proposed to participate in a project by his ex-colleague. I contacted her, discussed the main details and agreed to take the job (one of my mates decided to help as well) without any pre-payment. After all, this was a mutual friend, so I more or less trusted her. The task was to visualize a 3D model for web, make it interactive and beautiful. Also, a basic front-end to manage the model's settings had to be coded as well. Our customers were not tech savvy - they were designers and promised to present the basic model's files suitable for the three.js library.
Soon we received a draft of the model and my mate started coding (he was mainly in charge of the front-end, whereas I had to take care of the back-end). After a couple of days he presented the first version but that's where the things started to get messy. When I think about it now, we should've left the project at that point, but alas. The problem was with the designer leading the project - he was always changing his mind about the resulting product. Initially we were told that the stakeholder who actually booked the product already confirmed everything, but now we understood that it was far from truth. Therefore we were essentially asked to code a nearly finished product that would be shown to the customer so that he approve it and only then pay. On top of that, we even did not have a chance to talk to the customer directly and of course did not know what was the real budget and what are the requirments.
My mate (a really good programmer) spent a hefty amount of time to code the front-end and presented the new version - it was more than enough for a draft, but once again we were told that more work is needed (and once again we understood that the team has no vision of the final product, because instead of discussing the current version they kept generating new ideas). And, as you've guessed, we have not received any payment so far. So, we scheduled the next Hangouts call at the next day, 14:00 PM. On that day I had to visit a bunch of places and was not able to attend the meeting, therefore I asked my mate to participate alone (after all, he had coded the most of the project so far). The next day at 14:30 PM I e-mailed him asking how was the meeting but he told that had absolutely forgot about it - he was too obsessed with coding. Of course, we received an e-mail from the lead designer saying that they had been waiting for 20 minutes. I know, that sucks and this is not really professional, but after all that was just a Hangouts call - they did not have to travel anywhere and waste their time. We are all humans and make mistakes, moreover we always presented the new versions of the product in time (and, mind you, no one has still paid us a cent).
So of course we've written an e-mail with our apologies and explained the situation. But - guess what - we never received any reply at all. These guys simply disappeared and my friend who initially suggested to participate in this project could not provide any info at all. So basically we spent about 3 weeks on coding, meetings and discussions for nothing. Of course, that's not a huge tragedy and after all we acquired some skill in 3D visualization for web, but all in all that whole situation sucked. So now I try to discuss the possibility of getting some pre-payment before actually starting to code.