In PostgreSQL, can you read from an index during a ALTER INDEX ... SET TABLESPACE operation?
Try to recreate the index concurrently, so the original one is still used while creating the new. 

CREATE INDEX CONCURRENTLY idx_name 
ON table_name
USING BTREE(col_name)
TABLESPACE new_tblspace