You get an account and they get an account.
Accounts serve two functions. Access to the development tools and access to the business interface for the company publishing the app.
You sign up once. Each client signs up for their own account for the most important reason. That's where the bank information is to tell where the money goes. :). And contracts and sales data, etc.
The best way for it to work is for you to do development under Wildcarded developer and distribution (ad hoc) code signing keys (your account). You sign for multiple clients with the same keys. Then at the end, you sign and publish with a specific AppStore key (each client's account).
That will allow you to do control development, testing and beta distribution. When development is finished, you zip up the release version signed with their key and they upload it via iTunes Connect under their account.
Bonus section:
This configuration is easy to set up in XCode (once you get over the 24 hours of strangling yourself getting your head around how xcode and the distribution certificates work).
Go to Project->Edit Project Settings->Configurations. Duplicate two new configurations off of the "Release" configuration. Call one "Ad Hoc", the other "AppStore". Set your signing certificates as follows, iPhone Developer for Debug/Release, iPhone Distribution (Ad Hoc) for Ad Hoc, and their iPhone Distribution (AppStore) for "AppStore". Forget you even have a client until the end, then switch to AppStore distribution, build, zip, email, and done.
In practice, it's more complicated than that as you'll need to set up multiple certs/profiles/keys on your machine, but once you're done, it basically runs like this.