Here's the HTML markup for creating a checkbox using material-design-lite:
<label class="mdl-checkbox mdl-js-checkbox mdl-js-ripple-effect" for="checkbox">
<input type="checkbox" id="checkbox" class="mdl-checkbox__input" />
<span class="mdl-checkbox__label">Checkbox</span>
</label>
The issue is that the label's for attribute is tied to the input's id.
This presents a problem when adding a new checkbox dynamically, as you would need to assign a new id. But figuring out which id to use can become problematic, especially if these checkboxes are being added to a database later on.
For a working example, check out this link:
http://codepen.io/anon/pen/QjNzzO
Take note of the checkboxes for any new tasks you add