Distributed Quantum Computation