How to ensure several Python processes access the data base one by one?
You say that your dataset is <1GB, the problem is CPU bound.
Now start analyzing what is eating CPU cycles:

Which queries are really slow and executed often. MySQL can log those queries.
What about the slow queries? Can they be accelerated by using an index?
Are there unused indices? Drop them!
Nothing helps? Can you solve it by denormalizing/precomputing stuff?
I got a lot scripts running: scrappers, checkers, cleaners, etc. They have some things in common:

they are forever running;
they have no time constrain to finish their job;
they all access the same MYSQL DB, writting and reading.

Accumulating them, it's starting to slow down the website, which runs on the same system, but depends on these scripts.
I can use queues with Kombu to inline all writtings.
But do you know a way to make the same with reading ? 
E.G: if one script need to read from the DB, his request is sent to a blocking queue, et it resumes when it got the answer ? This way everybody is making request to one process, and the process is the only one talking to the DB, making one request at the time.
I have no idea how to do this.
Of course, in the end I may have to add more servers to the mix, but before that, is there something I can do at the software level ?