We study algorithms for carrier and rate allocation in cellular systems with distributed components such as a heterogeneous LTE system with macrocells and femtocells. Existing work on LTE systems often involves centralized techniques or requires significant signaling, and is therefore not always applicable in the presence of femtocells. More distributed CSMA-based algorithms (carrier-sense multiple access) were developed in the context of 802.11 systems and have been proven to be utility optimal. However, the proof typically assumes a single transmission rate on each carrier. Further, it relies on the CSMA collision detection mechanisms to know whether a transmission is feasible. In this paper we present a framework for LTE scheduling that is based on CSMA techniques. In particular we first prove that CSMA-based algorithms can be generalized to handle multiple transmission rates in a multi-carrier setting while maintaining utility optimality. We then show how such an algorithm can be implemented in a heterogeneous LTE system where the existing Channel Quality Indication (CQI) mechanism is used to decide transmission feasibility.