Windows Phone 8 async espera su uso

Acabo de empezar a aprender la programación de WP, por lo que esta podría ser una pregunta tonta ...

Estoy desarrollando una aplicación que recupera datos de un servicio web con pocos métodos diferentes. Así que decidí poner todo este código de servicio web en una clase:

class WebApiWorker
{
    public async Task<List<GeocodeResponse>> GetGeocodeAsync(String address)
    {
        String url = "http://api.com&search=" + HttpUtility.UrlEncode(address) + "&format=json";

        HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
        httpWebRequest.Method = "GET";

        HttpWebResponse response = (HttpWebResponse) await httpWebRequest.GetResponseAsync();

        Stream responseStream = response.GetResponseStream();
        string data;

        using (var reader = new System.IO.StreamReader(responseStream))
        {
            data = reader.ReadToEnd();
        }
        responseStream.Close();

        var geocodeResponse = JsonConvert.DeserializeObject<List<GeocodeResponse>>(data);
        return geocodeResponse;

    }
}

Pero cómo debería llamar esto desde mi código de "aplicación principal", estoy intentando algo como esto:

WebApiWorker webApi = new WebApiWorker();
var geoResponse = await webApi.GetGeocodeAsync("address");

Entonces, ¿qué hay de malo en esto? Recibo el error del compilador: el operador 'await' solo puede usarse dentro de un método asíncrono. Considere marcar este método con el modificador 'asíncrono' y cambiar su tipo de retorno a 'Tarea'.

Todas las sugerencias son bienvenidas.

Respuestas a la pregunta(2)

Su respuesta a la pregunta