You can clone with
Since doing "distributed" scan internally runs multiple Scans it may be worth considering executing those scans in muti-threaded way.
Just thoughts. May be user can pass the ExecutorService to use. Also, can we hookup directly with the region server as each individual scans most likely served from single region server.