Nonlinear quantum error correction