  We study properties of stabilizer codes that permit a local description on a
regular D-dimensional lattice. Specifically, we assume that the stabilizer
group of a code (the gauge group for subsystem codes) can be generated by local
Pauli operators such that the support of any generator is bounded by a
hypercube of constant size. Our first result concerns the optimal scaling of
the distance $d$ with the linear size of the lattice $L$. We prove an upper
bound $d=O(L^{D-1})$ which is tight for D=1,2. This bound applies to both
subspace and subsystem stabilizer codes. Secondly, we analyze the suitability
of stabilizer codes for building a self-correcting quantum memory. Any
stabilizer code with geometrically local generators can be naturally
transformed to a local Hamiltonian penalizing states that violate the
stabilizer condition. A degenerate ground-state of this Hamiltonian corresponds
to the logical subspace of the code. We prove that for D=1,2 the height of the
energy barrier separating different logical states is upper bounded by a
constant independent of the lattice size L. The same result holds if there are
unused logical qubits that are treated as "gauge qubits". It demonstrates that
a self-correcting quantum memory cannot be built using stabilizer codes in
dimensions D=1,2. This result is in sharp contrast with the existence of a
classical self-correcting memory in the form of a two-dimensional ferromagnet.
Our results leave open the possibility for a self-correcting quantum memory
based on 2D subsystem codes or on 3D subspace or subsystem codes.
