I wouldn't dream of asking for it upfront , o feel it shows a lack of trusting your customer , if you feel this way you have the wrong clients possibly?
I always discuss when booking how and when I expect to be paid , most ask if I take card or cheque, but I prefer cash or Bacs (all invoiced and recorded using QuickBooks app).
I have had 1 or 2 over the last 11 years who haven't made payment and I've struggled to get payment , a couple I've had to let go as they weren't worth the frustration ,but other then being more selective of my clients when booking I'm happy to continue the way I have been for the time being at least
All the best
Lewis