This could very well be a can of worms. :-/
Not just because supporting serialization can be a pain.
RateLimiter assumes a fixed, monotonic source of time readings. For example, "-read() + read()" can never be negative. If you serialize the internal state, then this assumption breaks -- a RateLimiter can go back in time. One would have to read carefully the code to see what kind of problems that might surface.
As for ideas, couldn't you put a "qps allocation" variable in memcache, and design it as a semaphore, where you grab permits (qps) that you are supposed to release back after some interval? (To avoid starvation of other clients, and be able to build some fairness). RateLimiter would just help you throttle given that temporary rate allocation, but I don't see how it could do much more than that