Ensemble preconditioning for Markov chain Monte Carlo simulation