I build them in parallel, feature by feature. Sometimes I might spend a little bit more time on the front end but since I am not really a designer, I just set up the template for a start and build a prototype application. Later on, I just change stuff and refactor code if needed.
I do this because I know that things will change and better ideas will come up later on. You can't possibly know what's coming up next, or how it will look based on the first ideas and the initial spec.
Sometimes I just add features to a list by myself just to improve the User Experience and talk about the ideas with the client if they will be implemented or not.