Changed to double-checked locking so Schedulers.computation() and
Schedulers.io() cost only a volatile read and doesn't block concurrent
calls unnecessary.