With hourly projects, you don't have that issue. When the client makes unreasonable demands, you just tell them how much time it would take.
My recommendation would be to provide detailed estimates to the client, that show how much work every part of the project is. Include a few optional parts. When requirements change during the project (as they always do), then you can say, well, we could just skip this optional part and do whatever the client wants instead. This way the client is happy (they still have the same price) and you are happy (you don't have to work more hours than you expected).